package cn.itcast.vo;

import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Setter
@Getter
public class PageBean {
    //    1、当前页码
    private int pageNum;
    //    2、每页显示条数
    private int pageSize;
    //    3、每页的数据
    private List list;
    //    4、总条数
    private Long total;
    //    5、总页数
    private int pages;
    //   6、上一页
    private int prePage;
    //    7、下一页
    private int nextPage;
    //    8、起始页码
    private int navigateFirstPage;
    //    9、结束页码
    private int navigateLastPage;
//    1、页面传入的  pageNum  pageSize
//    2、计算的  pages  prePage  nextPage  navigateFirstPage  navigateLastPage
//    3、查询的   list  total

    public PageBean(Integer pageNum , Integer pageSize, List list , Long total ){
        this.pageNum=pageNum;
        this.pageSize=pageSize;
        this.list=list;
        this.total=total;

//        1、计算总页数   总条数/每页显示条数 如果有余数再+1  没有余数正好
        if(total%pageSize==0){
         this.pages   = (int) (total/pageSize);
        }else{
          this.pages   = (int) (total/pageSize) +1;
        }
//        2、上一页 、下一页页码
        if(pageNum==1){
            this.prePage = 1;
        }else{
            this.prePage = pageNum-1;
        }
        if(pageNum==pages){
            this.nextPage = pageNum;
        }else{
            this.nextPage = pageNum+1;
        }

//        3、起始页码、结束页码 navigateFirstPage  navigateLastPage

       /* 总页数不大于5
        起始页码 1
        结束页码总页数*/
        if(pages<=5){
            navigateFirstPage = 1;
            navigateLastPage = pages;
        }else{ //总页数大于5
            if(pageNum<=3){
                /*当前页码<=3
                起始页码 1
                结束页码 5*/
                navigateFirstPage = 1;
                navigateLastPage = 5;
            }else if((pages-pageNum) <=2){
//                总页数-当前页码<=2
//                起始页码 总页数-4
//                结束页码 总页数
                navigateFirstPage = pages-4;
                navigateLastPage = pages;
            }else{
//                以当前页码为中心，前面两个后面两个
//                起始页码  pageNum-2
//                结束页码  pageNum+2
                navigateFirstPage = pageNum-2;
                navigateLastPage = pageNum+2;
            }
        }
    }


}
